iT邦幫忙

2024 iThome 鐵人賽

DAY 5
0
自我挑戰組

前端工程師的java學習紀錄系列 第 5

Day5-變數與運算

  • 分享至 

  • xImage
  •  

今天的開始,先來試試怎麼印出Hello Word吧!(或是你想 是在哈囉?? 或其他任何東西都可以)

在第二天時有提到安裝Java以及設定環境變數,如果你有實際安裝的話,打開你的CMD 或是bash 並且輸入java -version ,應該會出現當前Java的安裝版本。

如下圖:

CMD :
https://ithelp.ithome.com.tw/upload/images/20240919/201391605PXkoPRbLf.jpg

bash :
https://ithelp.ithome.com.tw/upload/images/20240919/201391602GAjwnKDZS.jpg

  1. 接下來可以在任何地方創建一個HelloWorld.txt 的純文字檔案,打開後輸入並儲存。
class HelloWorld {
	public static void main(String[] args){
		System.out.println("Hello World");
	}
}
  1. 接著將檔案的副檔名改成.java ,系統應該會提示可能會造成檔案無法使用,請接著按是就好。
  2. 打開你的terminal 後,進入這個HelloWorld.java 的檔案位置。(如果忘記的話可以去複習一下第三天提過的如何使用termianl 切換所在位置,如果你是使用windows作業系統的人,可以直接在檔案總管最上面路徑的地方輸入cmd ,它會自動幫你打開並且就在這個路徑)。
  3. 接著在terminal 中輸入javac HelloWorld.java ,這時候在這個資料夾目錄中會出現一個新的檔案HelloWorld.class ,這個檔案就是透過javac 編譯後可以JVM 編譯成機器碼 給作業系統執行的檔案了。
  4. 接下來在terminal 中輸入java HelloWorld ,你就可以看到在terminal 中印出Hello World
  5. 恭喜你完成了Java的第一個應用!

針對剛剛所編寫的Java程式碼中,只針對幾個部分先講解,後續會再慢慢的說明其他部分。

  • 首先是{} 可以稱為大括號 (也有很多其他說法),在{} 裡面可以屬於scope (作用域),當離開它了之後,裡面所寫過的東西基本上執行完後就可以跟它說掰掰了。

  • 接著你會看到例如classpublicstaticvoid 等單詞,這些是屬於Java中的關鍵字 ,代表著它們在Java裡面是擁有特殊的含意,沒有辦法將這幾個單詞作為變數名稱使用。

  • System 屬於Java中的一個class (類),也是一個java SE api 內的功能,這邊所使用的System.out.println 是指將()內的東西列印到terminal 上。


變數

變數是什麼? 它指的是你先取了一個名字 ,接著將某個功能 等等的特定東西賦予給它,往後當需要這個功能 時,可以透過呼叫這個變數 去代替。

如果用圖示大概像這樣子(雖然畫得很醜)
https://ithelp.ithome.com.tw/upload/images/20240919/20139160PqIoDtNmFx.jpg

基本上每個程式語言對於變數 的命名,都會有一些規範 ,建議在命名變數時都要遵照這些規範去命名,一來是大家習慣,~~二來是這樣做也顯得自己是專業的? ~~

在Java中變數的命名基本上是以駝峰式 命名為主,指的是當這個變數名稱由2個 以上包含2個的單字組成時,第一個單字開頭用小寫 ,之後每一個單字的開頭都使用大寫 作為開頭,這樣做的好處是閱讀快速,例如int myAge = 20; (特此澄清小弟不是20歲) 這就是一個變數的寫法。在Java中要宣告一個變數時,需要先為它定義一個型別,這是非常重要的事情,如果沒有定義好型別,在使用javac 編譯時是無法編譯通過。


運算規則

加減乘除就不多說明了,應該大家都知道,運算規則這邊要特別提一個%這個不是代表百分號,三個放在一起也不會變成…% 指的是取餘數,例如:

以數學的角度看:
10 / 3 = 3...1
而今天如果使用
10 % 3 時,結果會是 1
這就是它所代表的意思

在java 中,只有byteshortintlongfloatdoublechar 可以運算,並且原則上要相同型別才能夠進行運算。但是Java中運算規則中有一個特殊的機制—提升,不同數據類型運算時,會以範圍大的作為自動提升的基準,而非該型別 byte 的多寡為基準,並且當byte、short、char 在做運算時,都會將類型轉換為int

以下是各個型別自動提升的狀況。

例如:
int = byte \ short \ char
long = byte \ short \ char \ int
float = byte \ short \ char \ int \ long
double = byte \ short \ char \ int \ long \ float

強制轉換型別

強制型別轉換指的是告訴編譯器,確定要做這樣的型別轉換,但有可能會導致精度損失。

例如:

long num1 = 10L;
int num2 = (int) num2; // 20
int num3 = num1; //  incompatible types: possible lossy conversion from long to int

在宣告的 前面加上() 就可以強制轉換型別,若是沒有加上時,以上面的例子來看,因為long 可以接受的範圍比int 還大,若是沒有使用() 在編譯時會有錯誤,無法進行編譯。


上一篇
Day4-Java基本型別
下一篇
Day6-運算子(Operator)
系列文
前端工程師的java學習紀錄13
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言